const mongoose = require('mongoose');

// 通知公告表
const noticeSchema = new mongoose.Schema({
    // 通知标题
    title: {
        type: String,
        required: true,
        trim: true,
        maxlength: 200
    },
    // 通知内容
    content: {
        type: String,
        required: true
    },
    // 通知类型
    type: {
        type: String,
        enum: ['预约须知', '就诊须知', '系统公告', '紧急通知', '其他'],
        default: '预约须知'
    },
    // 通知级别
    level: {
        type: String,
        enum: ['low', 'normal', 'high', 'urgent'],
        default: 'normal'
    },
    // 发布状态
    status: {
        type: String,
        enum: ['draft', 'published', 'archived'],
        default: 'draft'
    },
    // 是否置顶
    isPinned: {
        type: Boolean,
        default: false
    },
    // 发布时间
    publishTime: {
        type: Date
    },
    // 过期时间
    expireTime: {
        type: Date
    },
    // 创建者
    creator: {
        type: String,
        default: 'admin'
    },
    // 阅读次数
    readCount: {
        type: Number,
        default: 0
    },
    // 排序字段
    sort: {
        type: Number,
        default: 0
    },
    // 创建时间
    createTime: {
        type: Date,
        default: Date.now
    },
    // 更新时间
    updateTime: {
        type: Date,
        default: Date.now
    }
}, {
    timestamps: true,
    collection: 'notices'
});

// 更新时间中间件
noticeSchema.pre('save', function(next) {
    this.updateTime = new Date();
    next();
});

module.exports = mongoose.model('Notice', noticeSchema); 